Computer networks are configurable according to several different models. One model has a plurality of computing components communicatively interconnected enabling each component to request information from or send information to selected ones or all of the other components. Each component acts as a server and a client with respect to the other components. A computer network of such design is more efficient when one computing component knows beforehand which of the other components to contact for the exchange of desired information.
One method of ensuring that a networked computer knows which of other networked computers to contact is to construct limited, physical communication links between specific computers in the network. However, implementing communication control by this method proves to be highly inflexible. If a computer which provides information or services for other computers becomes unavailable (for reasons such as a voluntary maintenance shutdown or an involuntary system crash), network communication links have to be reconfigured so the other computers can request the information or services from another source. The process of reconfiguring physical communication links, often by the manipulation of physical switches, requires the expense of time and money. A similar reconfiguring cost is incurred when the original computer once again becomes available. The computers which formerly had a physical communication link with it would be reconfigured again to reestablish the original communication links. It is thus desirable to have a computer network with quicker and easier mechanisms for reconfiguring the communication links when the topology of the computer network changes.
While the network may use software instructions to implement such reconfigurations, the use of software raises new problems. For example, when a networked computer becomes unavailable, software instruction may be given to other computers to seek the desired information or services elsewhere. Subsequently, when the networked computer once again becomes available, software instruction may be sent informing the other computers to resume communication as originally configured. If distribution of the first instruction, for some reason, is delayed, the other computers would receive the first instruction (telling them to forward requests elsewhere) after the second instruction (telling them to resume communications). The other computers receiving instructions in such an order would become confused as to which computer they should forward information or service requests.
One method of synchronizing the communication of information in a computer network is observed in the routing algorithm Open Shortest Path First (OSPF), formally defined in Request for Comments (RFC) 1583, written by J. Moy and published by the Internet Engineering Task Force, March 1994. (RFCs are stored on Internet ftp servers managed by the U.S. Government. For instance, RFC 1583 may be found at the Internet address nic.ddn.mil/rfc/rfc1583.txt).
OSPF provides a method of synchronizing databases in computer network "routers." In OSPF, a router periodically advertises information describing its own database data (specifically, link state data) to a neighboring router and includes a sequence number that the neighboring router can use to detect old or duplicate advertisements. The router owning the database increases the sequence number when it originates a new instance of the advertisement. A larger sequence number signifies a more recent advertisement. While a scheme such as this is helpful in synchronizing information, it requires the router that owns the database to be involved in any change of data that it owns. Other routers, even if configured to handle the data owned by the particular router, cannot unilaterally step in and modify or "take over" the data. Sequence numbering and database data are owned by specific routers which must participate in any changes.
On the other hand, systems that do permit a database or resource owned by one device to be controlled by another device require the owner-device to track the location or control of the database resource. In such systems, when a device wants to access a particular resource, it must first inquire of the resource owner where the resource may be found. In order for the owner to always know where a resource is located, permission of the owner is required any time use of the resource is acquired by another device. The resource cannot independently transfer to another device's control.
Another feature desirable in a computer network is a "hot-standby" mode of operation. In hot-standby, a device capable of controlling a particular resource is connected to the network but does not control the resource. Instead, it waits for the device that does control the resource to become unavailable to the network (for reasons such as scheduled maintenance, power failure, equipment failure, or other causes). When the controlling device becomes unavailable, the hot-standby device automatically assumes control of the resource and preferably communicates its assumption of control to the rest of the network. Manual intervention by a network operator is not required for the takeover to occur. When the original device once again becomes available, it may at that time reassume control of the resource and similarly notify the rest of the network of its resumption of control. With respect to the resource, the hot-standby device would then return to a standby mode. Ideally, a hot-standby system provides a smooth transition for backup components to gain control when a main component becomes unavailable.
One recognized method of implementing a hot-standby system is known as IP Takeover. In IP Takeover, a hot-standby device can step in and begin responding to the network on behalf of the "unavailable" device. However, if the device is not really unavailable but only had a temporary failure in its network connection or is simply slow in responding, extreme havoc may result in the network. Both devices would be responding to the network, causing duplicate responses to be communicated. The network has no method of arbitration to determine which device is properly in control.
In the field of computer network routing, Cisco Systems of San Jose, Calif. has implemented a hot-standby system called "Hot Standby Router Protocol" (HSRP) that attempts to avoid such a dual-response problem. While HSRP does not enable the network to determine which device is properly active, it does attempt to limit the time that both devices are simultaneously active. HSRP has shown success but does so only under very controlled circumstances. The backup device and main device must sit side-by-side and carefully cross-monitor each other, permitting each to detect when the other is responding or not responding to the network. Because controlled cross-monitoring is required, it is difficult to have a hot-standby backup device at a location remote from the main device. Additionally, in IP Takeover, the backup device and main device must have the exact same IP network address. As such, both devices must be addressable on the same computer subnet.
Improved computer networking methods and apparatus that solve the above-stated problems are particularly desired in the field of wireless paging and messaging networks. In a typical wireless paging or messaging system, one or more input components receives messages left by callers for system subscribers. The messages are then relayed to one or more "home" database components which determines how to handle the subscriber's messages. Subsequently, the messages are forwarded to the proper output components for broadcast to the intended subscribers. The various components are linked via a computer communication network. The components, also known as switches, abide by certain rules in communicating with each other. These rules are known as an interswitch protocol.
A common interswitch protocol in present use is Telocator Network Paging Protocol (TNPP). Although TNPP was conceived initially to create a standard means of moving information between dissimilar paging terminals, it is widely used to create networks of similar paging terminals. TNPP is presently used to ensure delivery of information from one paging terminal to another paging terminal. It however does not provide solutions to the problems identified above.